package com.aps.algorithm.core;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.time.LocalDateTime;

/**
 * 算法执行指标
 * 用于记录算法执行过程中的各种指标
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AlgorithmMetric {
    
    /**
     * 指标名称
     */
    private String name;
    
    /**
     * 指标值
     */
    private double value;
    
    /**
     * 记录时间
     */
    private LocalDateTime timestamp;
    
    /**
     * 指标单位
     */
    private String unit;
    
    /**
     * 指标描述
     */
    private String description;
    
    /**
     * 构造函数
     * @param name 指标名称
     * @param value 指标值
     * @param timestamp 记录时间
     */
    public AlgorithmMetric(String name, double value, LocalDateTime timestamp) {
        this.name = name;
        this.value = value;
        this.timestamp = timestamp;
    }
    
    /**
     * 构造函数
     * @param name 指标名称
     * @param value 指标值
     * @param timestamp 记录时间
     * @param unit 指标单位
     */
    public AlgorithmMetric(String name, double value, LocalDateTime timestamp, String unit) {
        this.name = name;
        this.value = value;
        this.timestamp = timestamp;
        this.unit = unit;
    }
}
